]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
gnome-shell-jhbuild.in: Fix restore_gnome.
authorJasper St. Pierre <jstpierre@mecheye.net>
Wed, 13 Jul 2011 17:08:43 +0000 (13:08 -0400)
committerJasper St. Pierre <jstpierre@mecheye.net>
Wed, 13 Jul 2011 17:35:16 +0000 (13:35 -0400)
The gconf keys used to restore GNOME aren't in a proper GNOME3 environment.
To mimic what GNOME3 gnome-session does would be extremely complicated, so
just launch the system gnome-shell.

https://bugzilla.gnome.org/show_bug.cgi?id=654527

src/gnome-shell-jhbuild.in

index 924e9b386a585d512c5519f5df512bcfec4312ab..a346f9105ec41aafb0324a985f1c68d32359239c 100755 (executable)
@@ -532,7 +532,7 @@ def restore_gnome():
         component = client.get_string(gconf_path)
 
         if component == None or component == "":
-            return
+            return False
 
         # See gnome-session/gsm-util.c:gsm_util_find_desktop_file_for_app_name()
         # The one difference is that we don't search the autostart directories,
@@ -549,9 +549,15 @@ def restore_gnome():
 
         if appinfo:
             appinfo.launch()
+            return True
+        return False
+
+    # GNOME2 fallback
+    wm    = launch_component("/desktop/gnome/session/required_components/windowmanager")
+    panel = launch_component("/desktop/gnome/session/required_components/panel")
 
-    launch_component("/desktop/gnome/session/required_components/windowmanager")
-    launch_component("/desktop/gnome/session/required_components/panel")
+    if not wm and not panel: # Probably GNOME3
+        subprocess.Popen(['gnome-shell'])
 
 # Main program